using Microsoft.Extensions.Primitives;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

namespace B.S.BaseData.ReadAPI.Dtos.Users
{
    /// <summary>
    /// 登录请求DTO
    /// </summary>
    public class LoginDto
    {
        /// <summary>
        /// 用户名
        /// </summary>
        [DefaultValue("admin")]
        public string? UserName { get; set; } = "admin";

        /// <summary>
        /// 密码
        /// </summary>
        [DefaultValue("123456")]
        public string? Password { get; set; } = "123456";
        /// <summary>
        /// 手机号
        /// </summary>
        [DefaultValue("15612462215")]
        public string? Phone { get; set; }=string.Empty;
        /// <summary>
        /// 验证码id
        /// </summary>
        [DefaultValue("")]
        public string? CaptchaId { get; set; }=string.Empty;
        /// <summary>
        /// 验证码内容
        /// </summary>
        [DefaultValue("")]
        public string? Code { get; set; }=string.Empty;

    }

    /// <summary>
    /// 登录响应DTO
    /// </summary>
    public class LoginResponseDto
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 用户名
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 真实姓名
        /// </summary>
        public string RealName { get; set; }


        /// <summary>
        /// 角色ID
        /// </summary>
        public string RoleId { get; set; }

        /// <summary>
        /// 会员等级
        /// </summary>
        public string MembershipLevel { get; set; }


        /// <summary>
        /// 可用积分
        /// </summary>
        public int AvailablePoints { get; set; }

        /// <summary>
        /// 用户标签
        /// </summary>
        public string UserTags { get; set; }

        /// <summary>
        /// 注册渠道
        /// </summary>
        public string RegistrationChannel { get; set; }

        /// <summary>
        /// Token
        /// </summary>
        public string Token { get; set; }
    }
}